#ifndef __BRANCH1_BASE_BRANCH1_XML_MANAGER_H__
#define __BRANCH1_BASE_BRANCH1_XML_MANAGER_H__
#include "Branch1BaseConfig.h"
#include <tinyxml/tinyxml.h>
#include <daisy/Singleton.h>
#ifndef  TIXML_USE_STL
#define TIXML_USE_STL
#endif
namespace DAISY
{
	namespace XML
	{
		const std::string ACTORS("Actors");
		const std::string ACTOR("Actor");
		const std::string SCENES("Scenes");
		const std::string SCENE("Scene");
		const std::string POSX("x");
		const std::string POSY("y");
		const std::string POSZ("z");
		const std::string VALUE("Value");
		const std::string NAME("Name");
		const std::string TYPE("Type");
		const std::string CHANNEL("Channel");
		const std::string SCALE("Scale");
		const std::string SCALEX("ScaleX");
		const std::string SCALEY("ScaleY");
		const std::string SCALEZ("ScaleZ");
		const std::string ISVISIBLE("IsVisible");
		const std::string ISENABLE("IsEnable");
		const std::string ISUPDATE("IsUpdate");
		const std::string MASS("Mass");
		const std::string MESH("Mesh");
		const std::string TERRAIN("Terrain");
		const std::string TERRAINSIZE("TerrainSize");
		const std::string TERRAINWORLDSIZE("TerrainWorldSize");
		const std::string MAXPIXELERROR("MaxPixelError");
		const std::string COMPOSITEDIS("CompositeMapDistance");
		const std::string INPUTSCALE("InputScale");
		const std::string MINBATCHSIZE("MinBatchSize");
		const std::string MAXBATCHSIZE("MaxBatchSize");
		const std::string PAGEGEO("PageGeometry");
		const std::string PAGESIZE("PageSize");
		const std::string MAXRANGE("MaxRange");
		const std::string GRASSDENSITY("GrassDensity");
		const std::string TEXTUREWSIZE("TextureWorldSize");
		const std::string TEXTURENAME("TextureName");

		//cutscene
		const std::string CUTSCENE("CutScene");
		const std::string FRAME("Frame");
		const std::string INDEX("Index");
		const std::string STARTTIME("StartTime");
		const std::string ENDTIME("EndTime");
		const std::string ISAUTOTRACKING("IsAutoTracking");
		const std::string ISUSECEGUI("IsUseCEGUI");
		const std::string CEGUICONTENT("CEGUIContent");
		const std::string CEGUIPOSRX("CEGUIPositRX");
		const std::string CEGUIPOSRY("CEGUIPositRY");
		const std::string CAMERAPX("CameraPx");
		const std::string CAMERAPY("CameraPy");
		const std::string CAMERAPZ("CameraPz");
		const std::string CAMERAQX("CameraQx");
		const std::string CAMERAQY("CameraQy");
		const std::string CAMERAQZ("CameraQz");
		const std::string CAMERAQW("CameraQw");
		
		const std::string PLAYERPX("PlayerPx");
		const std::string PLAYERPY("PlayerPy");
		const std::string PLAYERPZ("PlayerPz");
		const std::string PLAYERQX("PlayerQx");
		const std::string PLAYERQY("PlayerQy");
		const std::string PLAYERQZ("PlayerQz");
		const std::string PLAYERQW("PlayerQw");
		


		const std::string DAISYSCENE_CONFIG("DaisySceneConfig");


		 class _BranchBaseExport XMLManager:public DAISY::Tools::Singleton<XMLManager>
		{
		public:
			XMLManager();
			~XMLManager();
			bool init(std::string& fileName);
			void shutDown();
			TiXmlDocument* getDocument();
		private:
			TiXmlDocument* _document; 
			bool _isInit;
		};
	}
}
#endif